import os
import json
from typing import List, Dict, Any
from pathlib import Path
import datetime

def ensure_knowledge_base_dir() -> str:
    """确保知识库目录存在"""
    knowledge_base_dir = "knowledge_base"
    if not os.path.exists(knowledge_base_dir):
        os.makedirs(knowledge_base_dir)
    return knowledge_base_dir

def create_demo_documents(knowledge_base_dir: str) -> None:
    """创建示例文档"""
    # 示例文档1：公司介绍
    company_intro = """公司简介
我们是一家专注于人工智能技术研发的创新企业。成立于2020年，总部位于北京。
公司主要业务包括：
1. 自然语言处理
2. 计算机视觉
3. 机器学习算法
4. 智能对话系统

我们的使命是让AI技术更好地服务于人类社会。"""

    # 示例文档2：产品说明
    product_info = """产品信息
智能助手系统
版本：1.0.0
功能特点：
- 支持多语言对话
- 24小时在线服务
- 智能问答系统
- 知识库管理

使用说明：
1. 系统启动后自动加载知识库
2. 支持自然语言提问
3. 可实时更新知识库内容"""

    # 示例文档3：技术文档
    tech_doc = """技术文档
系统架构：
1. 前端：Next.js + React
2. 后端：FastAPI
3. 向量数据库：FAISS
4. 嵌入模型：DeepSeek Embedding

部署要求：
- Python 3.9+
- Node.js 14+
- 8GB+ RAM
- 20GB+ 存储空间"""

    # 写入文件
    with open(os.path.join(knowledge_base_dir, "company_intro.txt"), "w", encoding="utf-8") as f:
        f.write(company_intro)

    with open(os.path.join(knowledge_base_dir, "product_info.txt"), "w", encoding="utf-8") as f:
        f.write(product_info)

    with open(os.path.join(knowledge_base_dir, "tech_doc.txt"), "w", encoding="utf-8") as f:
        f.write(tech_doc)

def get_document_list(knowledge_base_dir: str) -> List[str]:
    """获取知识库中的文档列表"""
    return [f for f in os.listdir(knowledge_base_dir) if f.endswith('.txt')]

def format_response(response: str) -> Dict[str, Any]:
    """格式化响应"""
    return {
        "response": response,
        "timestamp": str(datetime.datetime.now())
    } 